home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / libs / dcg301up / prisoner.scr < prev    next >
Text File  |  1993-05-11  |  3KB  |  122 lines

  1. !
  2. ! Default prisonner script..
  3. !
  4. ! (c) DC Software, 1992
  5. !
  6.  
  7. !------------------------------------------------------------------------!
  8. :@TALK ! Talk to the character !
  9. !------------------------------------------------------------------------!
  10.  
  11. ! First, say hello.. !
  12.   if NPC.V0 > 0 then
  13.     if NPC.V1 > 0 goto AFTER;
  14.     writeln( "You're back.. I thought you were going to leave me here.." );
  15.   else
  16.     writeln( "Are you here to help me?" );
  17.   endif;
  18.  
  19. ! Now, set some variables..
  20.   NPC.V0 = 1; ! From know on, remember we've been here
  21.  
  22. :CHAT
  23.   L3 = getstr("Name","Job","Join","Bye");
  24.   if L3 = -1 then 
  25.     writeln( "Don't leave me here.. Please.." );
  26.     goto CHAT; ! Pressed ESCape !
  27.   endif;
  28.  
  29. ! Handle JOIN differently..
  30.   if L3 = 2 then 
  31.     if group.size = 6 then
  32.       writeln( "Your party is full!" );
  33.       goto CHAT;
  34.     endif;
  35.     player.v1 = 1; ! 1 when I join the party, 2 if delivered to quester !
  36.     if NOT dotext( S0 ) then
  37.       writeln( "The sooner the better.." );
  38.     endif;
  39.     JOIN;
  40.     STOP;
  41.   endif;
  42.  
  43. ! First, see if the keyword typed is in the character's text block !
  44.   if dotext( S0 ) goto CHAT;
  45.  
  46. ! It didn't, so try the predefined ones..
  47.   on L3 goto CNAME, CJOB, CHAT, CSTOP;
  48.  
  49. ! Nope, try a 'DEFAULT' line
  50.   if not dotext( "DEFAULT" ) then
  51.     writeln( "I don't know anything about that!" );
  52.   endif;
  53.   goto CHAT;
  54.  
  55. :CNAME
  56.   writeln( "My name is ", NPC.name, "." );
  57.   GOTO CHAT;
  58.  
  59. :CJOB
  60.   writeln( "I am a ", npc.type );
  61.   GOTO CHAT;
  62.  
  63. :CSTOP
  64.   writeln( "Don't leave me here.. Please.." );
  65.   STOP;
  66.  
  67. !
  68. ! This is the script for AFTER I've been rescued !
  69. !
  70. :AFTER
  71.  
  72.   if npc.v1 = 1 then ! We JOINED, but were not delivered !
  73.     if NOT dotext( "DELIVER" ) then
  74.       writeln( "I need your help to return home.." );
  75.     endif;
  76.     goto CHAT;
  77.   endif;
  78.  
  79. :CHAT2
  80.   L3 = getstr("Name","Job","Join","Bye");
  81.  
  82. ! First, see if the keyword typed is in the character's text block !
  83.   if dotext( S0 ) goto CHAT2;
  84.  
  85. ! It didn't, so try the predefined ones..
  86.   on L3 goto CNAME2, CJOB2, CJOIN2, CSTOP2;
  87.  
  88. ! Nope, try a 'DEFAULT' line
  89.   if not dotext( "DEFAULT" ) then
  90.     writeln( "I don't know anything about that!" );
  91.   endif;
  92.   goto CHAT2;
  93.  
  94. :CNAME2
  95.   writeln( "My name is ", NPC.name, "." );
  96.   GOTO CHAT2;
  97.  
  98. :CJOB2
  99.   writeln( "I am a ", npc.type );
  100.   GOTO CHAT2;
  101.  
  102. :CJOIN2
  103.   writeln( "Sorry.  I've had my fill of adventure.." );
  104.   GOTO CHAT2;
  105.  
  106. :CSTOP2
  107.   writeln( "Nice talking to you.." );
  108.   STOP;
  109. !------------------------------------------------------------------------!
  110. !
  111. :@DROP  ! DROP a player from the group. !
  112. !
  113. !------------------------------------------------------------------------!
  114.   !
  115.   ! Here, you can handle the 'vacate' action for the prisoner.  Omit
  116.   ! the CONTINUE command tells the system that even though we took some
  117.   ! action, standard processing should be taken anyway.  Change it to 
  118.   ! a 'STOP' if you do not want standard processing to take place.
  119.   !
  120.   CONTINUE;
  121.  
  122.